package DAO;
import java.sql.*;
import Classes.*;

import java.util.*;
import DBConnection.ConnectionDB;


public class VoorstellingDAO{
	
	 Connection con=null;
	 PreparedStatement prepStatement=null;
	 ResultSet rs=null;
	  
	 public VoorstellingDAO(){
	   
	 }
	  
	 private Connection getConnection() throws SQLException{
		 Connection conn;
		 conn=ConnectionDB.getInstance().getConnection();
		 return conn;
	 }
	 
	 public List<Voorstelling> getVoorstellingenByGenreNr(int genreNr){
		 
		 ArrayList<Voorstelling> AL = new ArrayList<Voorstelling>();
		 
		 try{
			 
			 String query = "SELECT * FROM voorstellingen WHERE GenreNR = ?";
			 con = getConnection();
			 prepStatement = con.prepareStatement(query);
			 prepStatement.setInt(1, genreNr);
			 rs = prepStatement.executeQuery();
			 
			 while(rs.next()){
				 //System.out.println(rs.getString("titel"));
				 AL.add(new Voorstelling(rs.getInt("VoorstellingsNr"), rs.getString("Titel"), rs.getString("Uitvoerders"), rs.getString("Datum"),rs.getInt("GenreNr") , rs.getFloat("Prijs"), rs.getInt("VrijePlaatsen")));
			 }
			 
			 
		 }catch(SQLException sqle){sqle.printStackTrace();}
		 finally{
			 if(con != null){
					try{con.close();}catch(SQLException se){}
			 }
		 }
		 
		 return AL;
	 }

	 public Voorstelling getVoorstellingByVoorstellingNr(int voorstNr){
		 
		 Voorstelling selectedVoorstelling = null;
		 
		 try{
			 
			 String query = "SELECT * FROM voorstellingen WHERE VoorstellingsNr = ?";
			 con = getConnection();
			 prepStatement = con.prepareStatement(query);
			 prepStatement.setInt(1, voorstNr);
			 rs = prepStatement.executeQuery();
			 
			 while(rs.next()){
				 
				 selectedVoorstelling = new Voorstelling(rs.getInt("VoorstellingsNr"), rs.getString("Titel"), rs.getString("Uitvoerders"), rs.getString("Datum"),rs.getInt("GenreNr") , rs.getFloat("Prijs"), rs.getInt("VrijePlaatsen"));	 
			 }
			//System.out.println(rs.getInt("VrijePlaatsen"));
			 
		 }catch(SQLException sqle){sqle.printStackTrace();}
		 finally{
			 if(con != null){
					try{con.close();}catch(SQLException se){}
			 }
		 }
		 return selectedVoorstelling;
		 
		 
		
	 }
}
